Page({
    /**
     * 页面的初始数据
     */
    onLoad() {
        this.getList();
    },

    onShow: function () {
        this.getList();
    },

    data: {
        list: [],
        scrollHeight: 0,  // scroll-view高度
        startX: 0,        // 开始X坐标
        startY: 0,        // 开始Y坐标
    },
    
    goBtnO() {
        wx.navigateTo({
          url: '/pages/ocrMedicine/ocrMedicine',
        })
    },

    goBtnH() {
        wx.navigateTo({
          url: '/pages/handInputMedicine/handInputMedicine',
        })
    },

    // 手指触摸动作开始
    touchStart: function(e){
        let that = this;
        //开始触摸时 重置所有删除
        that.data.list.forEach(function (v, i) {
            if (v.isTouchMove) v.isTouchMove = false; // 只操作为true的
        })
        // 记录手指触摸开始坐标
        that.setData({
            startX: e.changedTouches[0].clientX,  // 开始X坐标
            startY: e.changedTouches[0].clientY,  // 开始Y坐标
            list: that.data.list
        })
    },

    // 手指触摸后移动
    touchMove: function(e){
        let that = this,
            index = e.currentTarget.dataset.index,    // 当前下标
            startX = that.data.startX,                // 开始X坐标
            startY = that.data.startY,                // 开始Y坐标
            touchMoveX = e.changedTouches[0].clientX, // 滑动变化坐标
            touchMoveY = e.changedTouches[0].clientY, // 滑动变化坐标
            // 获取滑动角度
            angle = that.angle({ X: startX, Y: startY }, { X: touchMoveX, Y: touchMoveY });
　　　　　// 判断滑动角度
        that.data.list.forEach(function (v, i) {
            v.isTouchMove = false
            // 滑动超过30度角 return
            if (Math.abs(angle) > 30) return;
            if (i == index) {
                // 右滑
                if (touchMoveX > startX) 
                    v.isTouchMove = false
                // 左滑
                else 
                    v.isTouchMove = true
            }
      })
      // 更新数据
      that.setData({
          list: that.data.list
      })
    },

    // 计算滑动角度
    angle: function (start, end) {
        let that = this,
        _X = end.X - start.X,
        _Y = end.Y - start.Y; 
        // 返回角度 /Math.atan()返回数字的反正切值
        return 360 * Math.atan(_Y / _X) / (2 * Math.PI);
    },

    // 删除
    delList: function(e){
        let that = this,
        index = e.currentTarget.dataset.index;  // 当前下标
        // 切割当前下标元素，更新数据
        console.log(that.data.list[index].title);
        that.data.list.splice(index, 1); 
        that.setData({
            list: that.data.list
        })
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        let that = this;
        // 动态获取屏幕高度
        that.setData({
            scrollHeight: wx.getSystemInfoSync().screenHeight/2
        })
    },

    goDetail(e){
        wx.navigateTo({
          // 跳转到详情页面同时携带商品id
          url: '/pages/medicineBoxInfo/medicineBoxInfo?id=' + e.currentTarget.dataset.id,
        })
    },

    // 获取列表数据
    getList(){
        // es6简洁写法
        wx.cloud.database().collection('medicineBox').get()
        .then(res => {
            console.log('请求列表数据成功', res);
            this.setData({
                list: res.data
            })
            console.log(list, "你好");
        }).catch(err => {
            console.log('请求失败');
        })
    },

    // 删除药物数据
    removeMedicine(e){
        console.log(this.data.list[e.currentTarget.dataset.index]);
        var id = this.data.list[e.currentTarget.dataset.index]._id;
        wx.cloud.database().collection('medicineBox')
        .doc(id)
        .remove()
        .then(res => {
            console.log('删除成功');
            wx.showToast({
                icon:"none",
                title: '删除成功',
            })
            this.getList();
        })
        .catch(res=>{
            console.log('删除失败');
            wx.showToast({
                icon:"none",
                title: '删除失败',
              })
        })
    },
})